This disclosure relates generally to the field of display technology. More particularly, this disclosure relates to a technique for setting an executing application's display buffer size based, at least in part, on the type of information that application indicates it will display.
Early televisions were highly variable in how the video image was framed within the television's cathode ray tube (CRT). Because of this, manufactures defined three areas: (1) title safe, an area assumed to be visible on all display devices and, as such, where text was certain not to be cut off; (2) action safe, an area that represents the visible area for a “perfect” display device; and (3) overscan, the full image area. Thus, the term “overscan” refers to an area around the four edges of a video image that may not be reliably seen by a viewer.
While early display devices performed overscan to compensate for manufacturing issues, modern pixelated display devices such as liquid crystal displays (LCDs) do not need to do this. Many, however, do so. This, and the fact that applications do not know whether the display device coupled to the system on which they are executing perform overscanning, can result in a sub-optimal display. For example, if an application assumes the display device overscans it may pre-compensate for this by scaling its output to a size smaller than the display device's actual extent. If the display device does overscan, it will display the application's output with a black border. If the display does not overscan, however, the application produces an output with an unnecessary black border. On the other hand, if the application does not assume that the display device overscans it may generate an output matching the display device's full extent. If the display device does not overscan, the application will use it's full extent. Now, however, if the display device does overscan some of the application's output will be clipped. Thus, it would be beneficial to provide a mechanism to dynamically set the display region used by an application based, at least in part, on the application's type of output.